feat(spec)!: remove deprecated aiStudio/aiSeat capability aliases (#3308)#3329
Merged
Conversation
) The one-cycle deprecation window opened in #3265 is over. The legacy camelCase `requires` spellings `aiStudio`/`aiSeat` are no longer canonicalized to `ai-studio`/`ai-seat` — they are now plain unknown tokens, rejected by defineStack like any other typo. - spec: drop DEPRECATED_PLATFORM_CAPABILITY_ALIASES and canonicalizePlatformCapability exports; isKnownPlatformCapability no longer canonicalizes. - spec: defineStack no longer rewrites aliases (canonicalizeStackRequires removed); validateKnownCapabilities rejects the legacy spellings. - cli: serve resolver no longer canonicalizes raw-artifact requires. - Regenerate api-surface snapshot (4 export deletions). BREAKING shipped as minor per the launch-window convention. Migration: use the canonical kebab-case tokens ai-studio / ai-seat. First-party configs were migrated in cloud #862/#863; cloud's objectos-runtime (pinned to an older framework) follows on its next .framework-sha bump. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📓 Docs Drift CheckThis PR changes 2 package(s): 110 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
The spec-changes manifest was stale on main — the protocol had already advanced to 16 (dashboard-widget-strict-unknown-keys migration) without regenerating the projection. This PR is the first spec-touching change to trip the path-filtered check:spec-changes gate since that bump, so it picks up the sync. No content here derives from the alias removal — the capability vocabulary is not part of the ADR-0087 metadata-migration table. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
…sync) Companion to the spec-changes.json sync — the upgrade guide derives from the same ADR-0087 registries and carried the same pre-existing v16 drift (protocol 15→16, dashboard-widget-strict-unknown-keys section). The Check Generated Artifacts job runs check:spec-changes and check:upgrade-guide back to back; this brings the second into sync too. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
os-zhuang
marked this pull request as ready for review
July 20, 2026 02:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3308.
The one-cycle deprecation window opened in #3265 is over and a major release is being prepared, so this drops the legacy camelCase
requiresaliases.aiStudio/aiSeatare no longer canonicalized toai-studio/ai-seat— they are now plain unknown tokens, rejected bydefineStacklike any other typo (the reject end-state added in #3302).What changed
Follows the "What to remove" checklist in #3308:
packages/spec/src/kernel/platform-capabilities.ts— deletedDEPRECATED_PLATFORM_CAPABILITY_ALIASESandcanonicalizePlatformCapability;isKnownPlatformCapabilityno longer canonicalizes (plain membership check againstPLATFORM_CAPABILITY_TOKENS).packages/spec/src/index.ts— dropped the two removed exports from the re-export block.packages/spec/src/stack.zod.ts— removed thecanonicalizeStackRequirespass;defineStackrunsvalidateKnownCapabilitiesdirectly, which rejects the legacy spellings.packages/cli/src/commands/serve.ts— removed the raw-artifact alias canonicalization; the resolver dedupes the declaredrequiresverbatim.packages/spec/api-surface.json— regenerated (4 export deletions).Tests updated to assert the new reject behavior:
stack-requires.test.ts,platform-capabilities.test.ts, and the serve drift-guardserve-capability-vocabulary.test.ts.Breaking change
Shipped as a minor changeset per the launch-window convention (the
check-changeset-no-majorgate rejectsmajorduring the window). Migration: use the canonical kebab-case tokensai-studio/ai-seat.objectos-runtimeis pinned to an older framework SHA, so it is unaffected until its next.framework-shabump — at which point itscanonicalizeCapabilityTokendelegate becomes a no-op and can be removed (tracked as the cloud follow-up).Verification
@objectstack/spec— 6800 tests passed (256 files)@objectstack/cli— 423 tests passed (43 files)pnpm --filter @objectstack/spec check:api-surface— surface unchanged ✓tsc— exit 0; eslint clean🤖 Generated with Claude Code
https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
Generated by Claude Code